<?php
class ClientsConsumosController extends AppController {

	var $name = 'ClientsConsumos';
	var $components = array('Email'); //  use component email 
	var $uses = array('User','Client','Person','ClientsUsers','Update','Rol','Sponsor','ClientsSponsors');

    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }

	function index() {

	
		$client_id = $this->Session->read('ClientesUsuarioLogueado.id'); // $_SESSION['Client']['id'];
		$user_id   = $this->Auth->user('id'); //$_SESSION['Auth']['User']['id'];
		

		$this->loadModel('ClientsPlan');
		$Plan = $this->ClientsPlan->find('first', array(
						'conditions' => array(
										'ClientsPlan.client_id' => $client_id,
										'ClientsPlan.activo'    => 1,
						), 'recursive' => 1

						));
		
		// ----------------------------------------------------------------------------------
		//                        La cantidad de Pacientes supera las permitidas por el Plan? 
		// ----------------------------------------------------------------------------------
		$cantidad_maxima_pacientes = $Plan['Plan']['maximo_pacientes'];
		$this->loadModel('ClientsPerson');
		$sql = "select count(id) as cuantos from clients_people where client_id='$client_id'";
		$x   = $this->ClientsPerson->query($sql);

		$Plan['Consumos']['pacientes_actuales']	= $x[0][0]['cuantos'];	

		// ----------------------------------------------------------------------------------
		//                                                           Tiene Referidos Activos? 
		// ----------------------------------------------------------------------------------
		$this->loadModel('Referer');
		$sql = "select count(id) as cuantos from referers where client_id='$client_id' and cliente_referido_id > 0";
		$x   = $this->Referer->query($sql);
		$Plan['Plan']['referidos_vigentes'] = $x[0][0]['cuantos'] * 50;


		// ----------------------------------------------------------------------------------
		//                                 La cantidad de GB almacenados supera los del Plan? 
		//                                        Si $Plan['Plan']['maximo_gb']=0 : ilimitado
		// ----------------------------------------------------------------------------------
		$this->loadModel('Adjunto');
		$sql = "select sum(size_kb) as cuantos from adjuntos where client_id='$client_id' and staterecord_id>1";
		$x   = $this->Adjunto->query($sql);
		$kb_usados = $x[0][0]['cuantos'];
		if ( $kb_usados > 0 ){
			$Plan['Consumos']['gb_usados'] = $kb_usados/1024/1024;
			if ($Plan['Consumos']['gb_usados'] <1 ) { $Plan['Consumos']['gb_usados']='< 1Gb'; }
		} else {
			$Plan['Consumos']['gb_usados'] = '0Gb';
		}
		
		// ----------------------------------------------------------------------------------
		//                                        La cantidad de Medicos supera los del Plan? 
		//                                   Si $Plan['Plan']['maximo_medicos']=0 : ilimitado
		// ----------------------------------------------------------------------------------
			$rol_medico = 4; // id del rol de medico en rols


			$this->loadModel('RolsUser');
			$rols = $this->RolsUser->find('all', array(
										      'conditions' => array(
														           'RolsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
														           'RolsUser.rol_id'    => $rol_medico
		   															)
			  											) 
			  							);
			//pr($rols); die();
			if ($rols){
				$this->loadModel('ClientsUser');
				foreach($rols as $clave=>$valor) {

					$user_id = $valor['RolsUser']['user_id'];

					$ClientUser = $this->ClientsUser->find('first', array(
																'conditions' => array(
																			'ClientsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
																			'ClientsUser.user_id'   => $user_id,
																			), 
																'recursive' => -1
																)
														);
					if ( isset($ClientUser) and $ClientUser['ClientsUser']['staterecord_id'] > 1 ){

						unset($rols[$clave]);

					}

				}

			}

			$Plan['Consumos']['cantidad_de_medicos'] = count($rols);

		// ----------------------------------------------------------------------------------
		//         La cantidad de administrativos/asistentes/secretarias supera los del Plan? 
		//                                     Si $Plan['Plan']['maximo_admin']=0 : ilimitado
		// ----------------------------------------------------------------------------------
			$rol_medico = 4; // id del rol de medico en rols

			$this->loadModel('RolsUser');
			$rols = $this->RolsUser->find('all', array(
										      'conditions' 	=> array(
														           'RolsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
														           'RolsUser.rol_id !='    => $rol_medico
		   															),
										      'group' 		=> array('RolsUser.user_id'), 
			  											) 
			  							);
//			pr($rols); 
			if ($rols){
				$this->loadModel('ClientsUser');
				foreach($rols as $clave=>$valor) {

					$user_id = $valor['RolsUser']['user_id'];

					$ClientUser = $this->ClientsUser->find('first', array(
																'conditions' => array(
																			'ClientsUser.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
																			'ClientsUser.user_id'   => $user_id,
																			), 
																'recursive' => -1
																)
														);
					if ( isset($ClientUser) and $ClientUser['ClientsUser']['staterecord_id'] > 1 ){
//						pr($rols[$clave]);
						unset($rols[$clave]);

					}

				}

			}
			$Plan['Consumos']['cantidad_de_otros_roles'] = count($rols);
		
		// ----------------------------------------------------------------------------------
		//                                                  El plan, tiene dias de caducidad? 
		//                                    Si $Plan['Plan']['dias_vigencia']=0 : ilimitado
		// ----------------------------------------------------------------------------------
			$fecha_alta = $Plan['ClientsPlan']['fecha_alta'];
			list($ano,$mes,$dia)=split("-",$fecha_alta);
        	$fecha_alta = mktime(0,0,0, $mes,$dia,$ano);
        	$Plan['Consumos']['dias_de_uso'] = number_format( ((time()-$fecha_alta)/60/60/24),0);

	
		$this->set('Plan',$Plan);
	}
	
}
?>